Working version. Basic.