workable but unfinished initial version