Version 0.5; halfway done