added filters, moved classes to their own files.