added tests and finished super macro implementation