related work partially re-written