design and engine done, need commenting