cleaned up methods