First alpha version working and passing in all tests