another beautiful project restructuring version 4