Reworked shader bindings and contracts