re-organize package structure