check point, it is compiling :D,
going to remove warning and finish the implementation