implementation of common things for acm