Tangible User Interfaces: Past, Present and Future Directions