add compiled version
redo but correctly