initial commit - skeleton + read implementation