First version, almost works