split alias support into a separate source file for better readability