First version, very basic functionality