some progress
compile it