added sampling methods