add abstract extension to shorten extension creation