working prototype
updated working prototype