add cache [] method, completes #6