finally proper alias support, though at least one corner case is broken