split feature extraction into 3 files