Attempt at rendering abstraction, check ExampleUsage (one new lib required)