meta programming, todo: has_many, belongs_to