quick-n-dirty implementation which can read data