RequireContract -> abstract: contracts should have it's own attribute classes to ease navigation with Resharper