First version, basic functionality done.