Rethought some methods