First version, without many class and simple structure