Molecular mechanisms of splice site recognition