work on partial
partial seems working, write tests