another beautiful project restructuring version 3