add test / re-organize