big refactoring;

- removed abstractions where it wasn't necessary
- added more decorator types: array and resource
- updated tests accordingly