read + skeleton implementation