working prototype. needs work.