First version, needs work.