added concise read and combine functions