implemented blocks function