add constructor to memory allocation via type_t
unify the read_*() methods in the provider(s)
reduces quite some amount of code...