Rudimentary line of sight

Some renaming of files, using abstract types instead of concrete ones