add prototype version for fun :)