dynamic dispatch and defining methods dynamically