added bitfields experiment + some refactoring