first working version with Derived props