combine all methods