Add ACP module and interface

This depends on PR #3 being merged first.

Note: If the acp module looks like a lot, it's not really, it's just that I commented every line :wink: 
As with the other objects we should probably make this a class property (although we only use this one method for now) for consistency.