Working prototype, but not that flexible and extendible
Revert "Working prototype, but not that flexible and extendible"

This reverts commit bebd842cf3bc5a5ae26b79056b58295a180cb5ef.