base style abstraction