refactor to use method missing, (the begginings of meta programming)