add basic implementation outline