Add first stab at abstraction
Update README