preliminary code. Segfaults.