guess method half decent
added exceptions