First version, seems to work.