fixes #5, fixes #7, fixes #8 -> dynamic api call through magic method