lovely class
refactored to use lovely class