build a mini version of ActiveRecord