first fully functional version