skeleton done need actual variable length reading functions