First version; tested