Here is my approach + specs