finished module implementation