Added AbstractSystem (Forgot to add this on the last commit)