type cast headers
dirty commit
todo