add abstract style trait