add tail & subprograms