use define_method rather than method_missing

split ann objects into separate file