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: 
I think we can, it just looks uglier using such a verbose array. easier to read (learn from) this way. what do you think?