added empty()
added at()