Introducing idea of metatable. A lot of work left, unfortunately...