better package structure