use inheritance instead of delegation
update for v0.002
new_foreign needs an argument
sort methods