added preprocessor
updated license