Changed impl to Macro-based instead of Abstract. Also added responder signals