added ability to add custom logic
fixed generic property bug