Made system use more exceptions and added sessioned models (like user).